// {
//   xxx: [callback1, callback2]
// }

const store = {
  // key: value
  //  key - 事件名
  //  value - 事件回调函数
};

const myEvent = {
  /**
   * 绑定事件
   * @param {string} eventName 事件名称
   * @param {function} callback 回调函数
   */
  $on: function (eventName, callback) {
    store[eventName] = callback;
  },

  /**
   * 触发事件
   * @param {*} eventName 事件名称
   * @param {*} payload 参数
   */
  $emit: function (eventName, payload) {
    console.log(payload);
    if (store[eventName]) {
      store[eventName](payload);
    }
  },
};

myEvent.$on("xxx", (number) => {
  // alert("123");
  console.log("xxx 被触发了，接收到的 number 是", number);
});

// 给 xxx 事件，再绑定一个回调
// myEvent.$on("xxx", () => {
//   // alert("123");
//   console.log("xxx 又被触发了");
// });

console.log(store);

setTimeout(() => {
  myEvent.$emit("xxx", 123);
}, 1000);
